/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * CadastroCurso.java
 *
 * Created on 17/06/2011, 15:10:40
 */
package cadastros;

import utilitarios.ConnectionHelper;
import visao.Telaprincipal;
import dao.DaoCurso;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import pojo.Curso;

/**
 *
 * @author Jean
 */
public class CadastroCurso extends javax.swing.JFrame {
    int navega=0;
    
    private Connection conn = null;
    private PreparedStatement pstm = null;
    ResultSet rs = null;
    Curso curso;
    DaoCurso daoCurso;

    /** Creates new form CadastroCurso */
    public CadastroCurso(Telaprincipal t) {
        initComponents();
        this.setLocationRelativeTo(t);
        conn = ConnectionHelper.getIntance().getConnection();
        try{ 
            pstm = conn.prepareStatement("select * from curso");
            rs = pstm.getGeneratedKeys();    
            rs.first();
            td_codigo.setText(rs.getString("cu_id"));
            td_descricao.setText(rs.getString("cu_descricao"));
            td_carga.setText(rs.getString("cu_carga"));
        }catch(SQLException erro){
            JOptionPane.showMessageDialog(null,"Não localizou dados"+erro);
        }
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        td_codigo = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        td_descricao = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        td_carga = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        botao_primeiro = new javax.swing.JButton();
        botao_anterior = new javax.swing.JButton();
        botao_proximo = new javax.swing.JButton();
        botao_ultimo = new javax.swing.JButton();
        botao_novo = new javax.swing.JButton();
        botao_gravar = new javax.swing.JButton();
        botao_excluir = new javax.swing.JButton();
        botao_alterar = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 18));
        jLabel1.setText("Cadastro de Curso");

        jLabel2.setText("Codigo");

        jLabel3.setText("Descrição");

        jLabel4.setText("Carga Horária");

        botao_primeiro.setText("<<");
        botao_primeiro.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_primeiroActionPerformed(evt);
            }
        });

        botao_anterior.setText("<");
        botao_anterior.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_anteriorActionPerformed(evt);
            }
        });

        botao_proximo.setText(">");
        botao_proximo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_proximoActionPerformed(evt);
            }
        });

        botao_ultimo.setText(">>");
        botao_ultimo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_ultimoActionPerformed(evt);
            }
        });

        botao_novo.setText("Novo");
        botao_novo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_novoActionPerformed(evt);
            }
        });

        botao_gravar.setText("Gravar");
        botao_gravar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_gravarActionPerformed(evt);
            }
        });

        botao_excluir.setText("Excluir");
        botao_excluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_excluirActionPerformed(evt);
            }
        });

        botao_alterar.setText("Alterar");
        botao_alterar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_alterarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(115, 115, 115)
                        .addComponent(jLabel1))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(26, 26, 26)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(jLabel2)
                                    .addComponent(td_codigo, javax.swing.GroupLayout.DEFAULT_SIZE, 80, Short.MAX_VALUE)
                                    .addComponent(jLabel3)
                                    .addComponent(td_descricao)
                                    .addComponent(jLabel4)
                                    .addComponent(td_carga)
                                    .addGroup(layout.createSequentialGroup()
                                        .addComponent(botao_novo)
                                        .addGap(18, 18, 18)
                                        .addComponent(botao_gravar)))
                                .addGap(18, 18, 18)
                                .addComponent(botao_excluir)
                                .addGap(18, 18, 18)
                                .addComponent(botao_alterar))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(botao_primeiro)
                                .addGap(18, 18, 18)
                                .addComponent(botao_anterior)
                                .addGap(18, 18, 18)
                                .addComponent(botao_proximo)
                                .addGap(18, 18, 18)
                                .addComponent(botao_ultimo)))))
                .addContainerGap(83, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(25, 25, 25)
                .addComponent(jLabel1)
                .addGap(20, 20, 20)
                .addComponent(jLabel2)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(td_codigo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel3)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(td_descricao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel4)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(td_carga, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(botao_primeiro)
                    .addComponent(botao_anterior)
                    .addComponent(botao_proximo)
                    .addComponent(botao_ultimo))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(botao_novo)
                    .addComponent(botao_gravar)
                    .addComponent(botao_excluir)
                    .addComponent(botao_alterar))
                .addContainerGap(26, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void botao_novoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botao_novoActionPerformed
        // TODO add your handling code here:
        td_codigo.setText("");
        td_descricao.setText("");
        td_carga.setText("");
        td_codigo.setEditable(false);
    }//GEN-LAST:event_botao_novoActionPerformed

    private void botao_gravarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botao_gravarActionPerformed
        // TODO add your handling code here:
         try{
            curso = new Curso();
            curso.setDescricao(td_descricao.getText());
            curso.setCarga(td_carga.getText());
            daoCurso.commit(curso);
            
            JOptionPane.showMessageDialog(null, "Gravação realizada com sucesso");
            
            pstm = conn.prepareStatement("select * from curso");
            rs = pstm.getGeneratedKeys();
            rs.next();
            mostra_dados();
        }catch(SQLException sqlex){
            JOptionPane.showMessageDialog(null,"Não foi possível gravar dados"+sqlex);
        }
    }//GEN-LAST:event_botao_gravarActionPerformed

    private void botao_proximoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botao_proximoActionPerformed
        // TODO add your handling code here:
      try{
       rs.next();
       mostra_dados();
       navega=2;
      }catch(SQLException erro){
        JOptionPane.showMessageDialog(null,"Não foi possível ir para o primeiro registro"+erro);
      }
    }//GEN-LAST:event_botao_proximoActionPerformed

    private void botao_primeiroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botao_primeiroActionPerformed
        // TODO add your handling code here:
      try{
        rs.first();
        mostra_dados();
      }catch(SQLException erro){
        JOptionPane.showMessageDialog(null,"Não foi possível ir para o primeiro registro"+erro);
      }
    }//GEN-LAST:event_botao_primeiroActionPerformed

    private void botao_anteriorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botao_anteriorActionPerformed
        // TODO add your handling code here:
      try{
        rs.previous();
        mostra_dados();
        navega=1;
      }catch(SQLException erro){
        JOptionPane.showMessageDialog(null,"Não foi possível ir para o primeiro registro"+erro);
      }
    }//GEN-LAST:event_botao_anteriorActionPerformed

    private void botao_ultimoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botao_ultimoActionPerformed
        // TODO add your handling code here:
      try{
        rs.last();
        mostra_dados();
      }catch(SQLException erro){
        JOptionPane.showMessageDialog(null,"Não foi possível ir para o primeiro registro erro: "+erro);
      }
    }//GEN-LAST:event_botao_ultimoActionPerformed

    private void botao_excluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botao_excluirActionPerformed
        // TODO add your handling code here:
        String id = td_codigo.getText();
        daoCurso.delete(Integer.parseInt(id));
        
    }//GEN-LAST:event_botao_excluirActionPerformed

    private void botao_alterarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botao_alterarActionPerformed
        // TODO add your handling code here:
        try{
            curso = new Curso();
            curso.setId(Long.parseLong(td_codigo.getText()));
            curso.setDescricao(td_descricao.getText());
            curso.setCarga(td_carga.getText());
            
            daoCurso.update(curso);
        }catch(SQLException erro){
            JOptionPane.showMessageDialog(null,"Erro ao tentar alterar o registro..."+erro);
        }
    }//GEN-LAST:event_botao_alterarActionPerformed

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
               // new CadastroCurso().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton botao_alterar;
    private javax.swing.JButton botao_anterior;
    private javax.swing.JButton botao_excluir;
    private javax.swing.JButton botao_gravar;
    private javax.swing.JButton botao_novo;
    private javax.swing.JButton botao_primeiro;
    private javax.swing.JButton botao_proximo;
    private javax.swing.JButton botao_ultimo;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JTextField td_carga;
    private javax.swing.JTextField td_codigo;
    private javax.swing.JTextField td_descricao;
    // End of variables declaration//GEN-END:variables
 public void mostra_dados(){
         try{
            
            td_codigo.setText(rs.getString("cu_id"));
            td_descricao.setText(rs.getString("cu_descricao"));
            td_carga.setText(rs.getString("cu_carga"));
            
         }catch(SQLException erro){
            if (navega == 1)
                JOptionPane.showMessageDialog(null,"voce já está no primeiro Registro");
            else if (navega ==2)
                JOptionPane.showMessageDialog(null,"voce já está no ultimo Registro");
            else
                JOptionPane.showMessageDialog(null,"Não localizou dados"+erro);
            navega=0;
        }
    }

}
